Many systems use disk mirroring to provide redundancy and high availability of the system. For example, if all the data disks have been mirrored, when one of the disks fails the system can access the requested data from the back-up disk. Once a replacement disk has been installed for the failed disk, the back-up disk can be used to repopulate the data. In order to reduce the risk associated with mirroring disks, typically the data disk is split into logical volumes. The logical volumes are then mirrored across different disks. For example, assume the system includes Disk A and Disk B and the system has three logical volumes, Volume 1, Volume 2, and Volume 3. Disk A may include the primary version of Volume 1 and Volume 3 and the mirrored version of Volume 2. Disk B may include the mirrored version of Volume 1 and Volume 3 and the primary version of Volume 2.
To assist in improving storage utilization, a system may employ data deduplication techniques. The data deduplication techniques identify repeated blocks of data, for example, blocks repeated across multiple volumes or disks. Data deduplication eliminates the redundancy by storing the repeated data only a single time. Any occurrence of the same block of data is then replaced with a link or reference to the already stored data block. Even though one of the volumes may be a mirror of another of the volumes, the repeated data may be on either the primary or the mirrored version of the volume. Additionally, data deduplication techniques generally have a target ratio associated with them which identify the percentage of the disk that should be deduplicated. Thus, the data deduplication techniques may affect both the primary and the mirrored versions of the disk or logical volume. In other words, the primary version of the disk or logical volume may contain both actual data blocks and also links or references to other data blocks.